1. Field of the Invention
This invention is related to programming languages and database management systems by which arbitrary computing applications, especially information related applications such as Database Applications, Data Discovery and Mining, Artificial Intelligent, Knowledge-based reasoning systems and Web-based applications can be developed.
2. Description of the Prior Art
Database management systems are the cores of almost all of the computing applications systems. The way of managing data, called data model normally in the database research area, is a key factor to determine the productivity and the quality of developing and maintaining database application software. Even more, it determines the success or the failure of a complex database application development regardless the cost.
Finding a better data model has been a challenging research activity. The relational data model is the most popular data model widely spreading in the industry. However, it has a lot of limitations in presenting data and manipulating data. Many new data models have been proposed after the relational data model. The examples are objected-oriented data models as in ??, graph-oriented data models as in Finding a better data model has been a challenging research activity. The relational data model is the most popular data model widely spreading in the industry. However, it has a lot of limitations in presenting data and manipulating data. Many new data models have been proposed after the relational data model. The examples are objected-oriented data models as in xe2x80x9cIntroduction to Object Oriented Databasesxe2x80x9d by Won Kim, the MIT Press, 1990, graph-oriented models as in xe2x80x9cA Graph-Oriented Object Database Modelxe2x80x9d by M. Gyssens, J. Paredaens, J. V. Bussche, and D. V. Gucht, in IEEE Transactions on Knowledge and Data Engineering, Vol. 6, No. 4, August 1994, page 572-586, semi-structured data as in xe2x80x9cTutorial: Semistructured Dataxe2x80x9d by Peter Buneman, in Proceedings of ACM Symposium on Principle of Database Systems, 1997, and the EP data model as in xe2x80x9cAn introduction to Enterprise-Participant Data Modelxe2x80x9d by Kevin H. Xu and Bharat Bhargava, in Seventh International Workshop on Database and Expert Systems Applications, September, 1996, Zurich, Switzerland, page 410-417. However, no one claims that it can represent arbitrary data and expressing arbitrary queries. Instead, host programming languages must be used on the top of DBMSs to cover whatever DBMSs can not cover. Obviously, this complicates the database application systems and drastically increases the effort of developing and maintaining database application systems.
A consequence of lacking a fully powered data model is that more and more different ways of representing data have been born and used for different kinds of information applications in industry. The most notable phenomenon recently is that file-based Web data applications and multimedia data applications are developed totally independent from database management systems. Different ways of representing data turn out more and more obstacles for data integration and interoperability.
Programming languages, on the other hand, have the theoretical power to develop arbitrary computing applications including database applications. However, they were not intended to address the specific issues of database applications such as data presentation and data communication. Therefore, it was much more expensive in developing file-based database applications in host programming languages in 1960""s before database management system became popular.
To maximize the productivity and the quality of database applications, a uniform framework, no matter it is called either a programming language or a data model, would be significant. The invention in the U.S. Pat. No. 5,995,958 xe2x80x9cSystem and Method for Storing and Managing Functionsxe2x80x9d issued to Kevin H. Xu has claimed that effectively computable functions including arbitrary data can be expressed by the EP data model. However, the invention presented in the U.S. Pat. No. 5,995,958 didn""t allow a leaf node pointing to another node as its value while it should be allowed according to the function theory. As a consequence, some values couldn""t be expressed without data duplication. Two nodes representing two different objects in a database may have the same value. The same value would have to be stored twice under each node when a pointer was not available. Because of the lack of a third type of links, many useful relationships among the nodes in a database couldn""t be explored, and then many queries cannot be expressed. Further more, there was not a well-defined query language above databases such that the language had a smooth connection with the databases. Finally, assigning an identifier for each node in a database in the invention of the U.S. Pat. No. 5,995,958 didn""t precisely follow the function theory. As a consequence, certain data and queries couldn""t be appropriately and effectively presented and expressed; and there are more difficulties in implementing the invention.
This invention expands and corrects the previous invention in U.S. Pat. No. 5,995,958.
First of all, a new type of links has been added. This would allow different nodes to share the same values; and allow nodes to be equally treated as functions in queries and in representing the relationship among nodes.
Secondly, all the non-root nodes don""t have to have identifiers (called labels in this invention description). Although most of the nodes in FIGS. 4, 5, and 6 of this invention description have labels displayed inside nodes for readability, the labels and the nodes are actually separated. Therefore, all the data and queries are uniformly expressed.
Thirdly, a set of computing rules against databases and db-terms (similar to the lambda-terms in the lambda calculus) is developed so that arbitrary input will have its output by passing through the computing rules.
Finally, a new set of built-in functions are developed under the guideline of the function/argument/value relationships among nodes. The built-in functions are fixed mechanism embedded in the systems.